package model

import (
	"manager/model/entity"
)

// FaultTypeCreateRequest 创建现场数据
type FaultTypeCreateRequest struct {
	Name string `json:"name"`

	Desc string `json:"desc"`

	FaultEnum int64 `json:"fault_enum"`

	Level int `json:"level"`

	UpdatedAt int64 `json:"updated_at"`
}

// FaultTypeUpdateRequest 更新现场数据
type FaultTypeUpdateRequest struct {
	Id int64 `json:"id"`

	Name *string `json:"name"`

	Desc *string `json:"desc"`

	FaultEnum *int64 `json:"fault_enum"`

	Level *int `json:"level"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt *int64 `json:"updated_at"`
}

// FaultTypeListRequest 列表现场数据
type FaultTypeListRequest struct {
	Index int `json:"index"`
	Size  int `json:"size"`

	Id int64 `json:"id"`

	Name *string `json:"name"`

	Desc *string `json:"desc"`

	FaultEnum *int64 `json:"fault_enum"`

	Level *int `json:"level"`

	UpdatedAt *int64 `json:"updated_at"`
}

// FaultTypeListResponse 列表回包数据
type FaultTypeListResponse struct {
	Total int              `json:"total"`
	List  []*FaultTypeInfo `json:"list"`
}

// FaultTypeInfoRequest 列表现场数据
type FaultTypeInfoRequest struct {
	Id int64 `json:"id"`

	Name *string `json:"name"`

	Desc *string `json:"desc"`

	FaultEnum *int64 `json:"fault_enum"`

	Level *int `json:"level"`

	UpdatedAt *int64 `json:"updated_at"`
}

// FaultTypeInfo 详细数据
type FaultTypeInfo struct {
	Id int64 `json:"id"`

	Name string `json:"name"`

	Desc string `json:"desc"`

	FaultEnum int64 `json:"fault_enum"`

	Level int `json:"level"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt int64 `json:"updated_at"`
}

// FaultTypeDeleteRequest 删除现场数据
type FaultTypeDeleteRequest struct {
	Id int64 `json:"id"`
}

// FaultTypesEntityToDto entity数据转换
func FaultTypesEntityToDto(faultTypes []*entity.FaultType) []*FaultTypeInfo {
	out := make([]*FaultTypeInfo, 0, len(faultTypes))
	for _, c := range faultTypes {
		out = append(out, FaultTypeEntityToDto(c))
	}
	return out
}

// FaultTypeEntityToDto entity数据转换
func FaultTypeEntityToDto(e *entity.FaultType) *FaultTypeInfo {
	return &FaultTypeInfo{

		Id: e.Id,

		Name: e.Name,

		Desc: e.Desc,

		FaultEnum: e.FaultEnum,

		Level: e.Level,

		CreatedAt: e.CreatedAt,

		UpdatedAt: e.UpdatedAt,
	}
}
